package br.org.acessobrasil.processoacessibilidade.vo;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.ManyToMany;
import javax.persistence.OneToMany;
import javax.persistence.PersistenceUnit;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.Transient;

import br.org.acessobrasil.portal.modelo.Pagina;

@Entity
@Table(name="pagina")
@PersistenceUnit(unitName="processoAcessibilizar")
public class PaginaPro implements Serializable{
	private static final long serialVersionUID = -3928657261757212638L;
	@Id
	@GeneratedValue
	private long idPagina;
	
	@Column(name="url",length=255)
	private String url;
	
	@Column(name="erro",length=1500)
	private String erro;
	
	@Column(name="idSitio")
	private long idSitio;
	
	@Column(name="idLinguagem")
	private Long idLinguagem;
	
	private Long idPaginaCMS;
	
	@Temporal (TemporalType.TIMESTAMP)
	private Date originalData;
	
	@Temporal (TemporalType.TIMESTAMP)
	private Date localData;
	
	@ManyToMany(fetch=FetchType.EAGER)
	private List<ArquivoPro> listaArquivo;

	@ManyToMany(fetch=FetchType.LAZY)
	private List<FormularioPro> listaFormulario;
	
	@OneToMany(fetch=FetchType.LAZY,mappedBy="idOrigem")
	private List<LinkPro> listaLinks;

	@Transient
	private String codOriginal;
	
	@Transient
	private String codTrabalho;
	
	@Transient
	public Pagina pag;
	
	@Transient
	private String codArquivo;
	
	/**
	 * Codigo de trabalho difere de codOriginal
	 * @return codigo de trabalho
	 */
	public String getCodTrabalho() {
		return codTrabalho;
	}
	public void setCodTrabalho(String codTrabalho) {
		this.codTrabalho = codTrabalho;
	}
	public List<FormularioPro> getListaFormulario() {
		return listaFormulario;
	}
	public void setListaFormulario(List<FormularioPro> listaFormulario) {
		this.listaFormulario = listaFormulario;
	}
	public String getCodOriginal() {
		return codOriginal;
	}
	public void setCodOriginal(String codOriginal) {
		this.codOriginal = codOriginal;
	}
	public String getErro() {
		return erro;
	}
	public void setErro(String erro) {
		this.erro = erro;
	}
	public long getIdPagina() {
		return idPagina;
	}
	public void setIdPagina(long idPagina) {
		this.idPagina = idPagina;
	}
	public String getUrl() {
		return url;
	}
	public void setUrl(String url) {
		this.url = url;
	}
	public Date getOriginalData() {
		return originalData;
	}
	public void setOriginalData(Date originalData) {
		this.originalData = originalData;
	}
	public Date getLocalData() {
		return localData;
	}
	public void setLocalData(Date localData) {
		this.localData = localData;
	}
	public List<LinkPro> getListaLinks() {
		return listaLinks;
	}
	public void setListaLinks(List<LinkPro> listaLinks) {
		this.listaLinks = listaLinks;
	}

	public long getIdSitio() {
		return idSitio;
	}
	public void setIdSitio(long idSitio) {
		this.idSitio = idSitio;
	}
	public List<ArquivoPro> getListaArquivo() {
		return listaArquivo;
	}
	public void setListaArquivo(List<ArquivoPro> listaArquivo) {
		this.listaArquivo = listaArquivo;
	}
	public long getIdLinguagem() {
		return idLinguagem;
	}
	public void setIdLinguagem(long idLinguagem) {
		this.idLinguagem = idLinguagem;
	}
	public void setCodArquivo(String codArquivo) {
		this.codArquivo = codArquivo;
	}
	public String getCodArquivo() {
		return codArquivo;
	}
	public void setIdPaginaCMS(Long idPaginaCMS) {
		this.idPaginaCMS = idPaginaCMS;
	}
	public Long getIdPaginaCMS() {
		return idPaginaCMS;
	}
}
